package com.example.demo.proxy.service.impl;

import com.example.demo.proxy.service.ProxyService;
import org.springframework.stereotype.Service;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;


@Service
public class ProxyServiceImpl implements ProxyService {

    @Override
    public Object getProxy(InvocationHandler handler, Class<?> targetClass) {
        // 使用targetClass.getInterfaces() 不行会报类型转换错误，必须使用new Class<?>[]{targetClass}
        return Proxy.newProxyInstance(targetClass.getClassLoader(), new Class<?>[]{targetClass}, handler);
    }

}
